--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / backend / database / map_drawings.py
Displaying Raw • Download
meshchatx/src/backend/database/map_drawings.py 22b4fcce096023ec706bab5449805e34a2912643 (22b4fcce) Text, 1.92 KB
T8b949e# SPDX-License-Identifier: 0BSD
Tff7b72from T7ee787datetime Tff7b72import Te6edf3UTCTb4b4b4, Te6edf3datetime
Tff7b72from T7ee787.T7ee787provider Tff7b72import Te6edf3DatabaseProvider
Tff7b72class T56d364MapDrawingsDAOTb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3providerTb4b4b4: Te6edf3DatabaseProviderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffprovider Tff7b72= Te6edf3provider
Tff7b72def Td2a8ffupsert_drawingTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3identity_hashTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3dataTb4b4b4)Tb4b4b4:
Te6edf3now Tff7b72= Te6edf3datetimeTff7b72.Td2a8ffnowTb4b4b4(Te6edf3UTCTb4b4b4)
T8b949e# Check if drawing with same name exists for this user
Te6edf3existing Tff7b72= Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchoneTb4b4b4(
Ta5d6ff"Ta5d6ffSELECT id FROM map_drawings WHERE identity_hash = ? AND name = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3identity_hashTb4b4b4, Te6edf3nameTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72if Te6edf3existingTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
Ta5d6ff"Ta5d6ffUPDATE map_drawings SET data = ?, updated_at = ? WHERE id = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3dataTb4b4b4, Te6edf3nowTb4b4b4, Te6edf3existingTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
T8b949e"""
INSERT INTO map_drawings (identity_hash, name, data, created_at, updated_at)
VALUES (?, ?, ?, ?, ?)
"""Tb4b4b4,
Tb4b4b4(Te6edf3identity_hashTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3dataTb4b4b4, Te6edf3nowTb4b4b4, Te6edf3nowTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8ffget_drawingsTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3identity_hashTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchallTb4b4b4(
Ta5d6ff"Ta5d6ffSELECT * FROM map_drawings WHERE identity_hash = ? ORDER BY updated_at DESCTa5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3identity_hashTb4b4b4,Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8ffdelete_drawingTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3drawing_idTb4b4b4, Te6edf3identity_hashTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657boolTb4b4b4:
Te6edf3cur Tff7b72= Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
Ta5d6ff"Ta5d6ffDELETE FROM map_drawings WHERE id = ? AND identity_hash = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3drawing_idTb4b4b4, Te6edf3identity_hashTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72return Te6edf3curTff7b72.Td2a8ffrowcount Tff7b72> T79c0ff0
Tff7b72def Td2a8ffupdate_drawingTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3drawing_idTb4b4b4, Te6edf3identity_hashTb4b4b4: Tffa657strTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3dataTb4b4b4) Tff7b72-Tff7b72> Tffa657boolTb4b4b4:
Te6edf3now Tff7b72= Te6edf3datetimeTff7b72.Td2a8ffnowTb4b4b4(Te6edf3UTCTb4b4b4)
Te6edf3cur Tff7b72= Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
T8b949e"""
UPDATE map_drawings
SET name = ?, data = ?, updated_at = ?
WHERE id = ? AND identity_hash = ?
"""Tb4b4b4,
Tb4b4b4(Te6edf3nameTb4b4b4, Te6edf3dataTb4b4b4, Te6edf3nowTb4b4b4, Te6edf3drawing_idTb4b4b4, Te6edf3identity_hashTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72return Te6edf3curTff7b72.Td2a8ffrowcount Tff7b72> T79c0ff0
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────